本文解决的是嵌套命名实体识别问题,提出了基于head-driven phrase structures的方法ARN,并且针对于无额外anchor word标注的数据集提出了bag loss。 ACL2019
Introduction
基于序列标注的命名实体识别(NER)方法,一个词只能属于于一个实体,如果遇到嵌套的(nested)的实体就会出现问题,如图1:
在ACE2005 和 GENIA数据集中有20%、10%左右的这种实体,具体的数据集的分析见《A Neural Layered Model for Nested Named Entity Recognition》的附录,ACL2019的文章《NNE: A Dataset for Nested Named Entity Recognition in English Newswire》提出了一个新的基于PTB数据的含有55%嵌套实体的数据集。
本文提出的Anchor-Region Networks(ARNs)基于两种假设:
- 尽管实体可能会有嵌套关系,但是不会共享同一个head word(anchor word),即不同的实体具有不同的head word,同时head word与实体类型有很强的语义关系。例如图1中
The minister of the department of education
和the department of education
分别对应head wordsminister
department
,并且分别对应实体类型ORG和PER。 - 大部分的实体具有规则的表达结构。例如图1中的两个实体共享DET NN of NP的结构,NN即为head words。
因此,ARNs识别分为两步:
- 用anchor detector network找出anchor word同时判断其对应的实体类别
- 用region recognizer network识别出以不同anchor word为中心的实体的边界
Anchor-Region Networks for Nested Entity Mention Detection
Anchor Detector
Anchor Detector是一个基于BiLSTM的softmax分类器,给定序列 $x_{1},…, x_{n}$,先得到其向量表示(由词向量,词性,字符向量组成),然后再通过BiLSTM层,最后对隐层状态做分类:
$$
\overrightarrow{h_{i}^{A}} =\operatorname{LSTM}\left(x_{i}, \overrightarrow{h_{i-1}^{A}}\right)
$$
$$ \hat{h_{i}^{A}} =\operatorname{LSTM}\left(x_{i}, \overleftarrow{h_{i+1}^{A}}\right) $$
$$h_{i}^{A} =\left[\overrightarrow{h_{i}^{A}} ; \overleftarrow{h_{i}^{A}}\right] $$
$$
O_{i}^{A}=\operatorname{MLP}\left(h_{i}^{A}\right)
$$
其中$O_{i}^{A} \in R^{|C|}$,$|C|$是实体类型数(包括不属于任意实体类型NIL)。
Region Recognizer
使用region recognizer network确定mention nugget,也就是确定实体的边界,如图1确定anchor word“mnister”的mention nugget是“the department of education”。 受到指针网络的启发,作者设计了一种pointer-based结构来识别实体的边界。
作者认为局部特征对于实体的识别很重要(如,动词前的名词常常是实体)。因此,作者使用CNN来提取句子的局部特征。与anchor detector类似,首先经过BiLSTM得到每个词的基于上下文的特征表示$h_{i}^{R}$,然后使用CNN计算卷积:
$$
\boldsymbol{r}_{\boldsymbol{i}}=\tanh \left(\boldsymbol{W} \boldsymbol{h}_{\boldsymbol{i}-\boldsymbol{k} : \boldsymbol{i}+\boldsymbol{k}}^{\boldsymbol{R}}+\boldsymbol{b}\right)
$$
$\boldsymbol{h}_{\boldsymbol{i}-\boldsymbol{k} : \boldsymbol{i}+\boldsymbol{k}}$是 $h_{i-k}^{R}$ 到 $h_{i+k}^{R}$的拼接,W是卷积核,k是窗口大小。最后计算achor word $w_{i}$ 左右边界在 word $w_{j}$上的分数:
$$
L_{i j} =\tanh \left(r_{j}^{T} \Lambda_{1} h_{i}^{R}+U_{1} r_{j}+b_{1}\right)
$$
$$
R_{i j} =\tanh \left(r_{j}^{T} \Lambda_{2} h_{i}^{R}+U_{2} r_{j}+b_{2}\right)
$$
分别选取分数最高的左边界$x_{j}$、右边界$x_{k}$就得到了完整实体。
Model Learning with Bag Loss
由于现有的NER数据集并没有anchor words的标注,所以作者设计了新的Bag Loss,基于假设:每一个实体有至少一个anchor word,把属于同最内部的实体的所有词作为一个bag,从最内层开始分,如{the, minister, of}形成一个PER bag,{the, department, of education} 形成一个ORG bag,三个NIL bag {convened}, {a}和{meeting}。
根据划分bag的规则,可以得到,一个词$x_{i}$对应的训练样本是一个元组 $x=(x_{i}, x_{j}, x_{k}, c_{i})$(一个实体的含有多个这种元组),对于一个词,bag loss会有两种情况:
如果$x_{i}$是anchor word,loss是anchor detector loss与region recognizer loss之和。
如果$x_{i}$不是anchor word,$x_{i}$应该被分为NIL,loss只有anchor detector loss一部分。
最终的loss两种loss加权求和,得到:
其中$L^{R}\left(x_{i} ; \theta\right)$是region recognizer loss:
而权重$\omega_{i}$是anchor word与bag的类型的相关性:
$$
\omega_{i}=\left[\frac{P\left(c_{i} | x_{i}\right)}{\max _{x_{t} \in B_{i}} P\left(c_{i} | x_{t}\right)}\right]^{\alpha}
$$
Compared with other words in the same bag, a word $x_{i}$ should have larger $w_{i}$ if it has a tighter association with the bag type.
$\alpha = 0$ means that all words are annotated with the bag type. And $\alpha \rightarrow+\infty$ means that Bag Loss will only choose the word with highest P(cijxi) as anchor word, while all other words in the same bag will be regarded as NIL.
Experiments
中的Multi-CRF是对每种实体训练一个单独的CRF,能够识别嵌套命名实体。
观察上表,得出:
1)从LSTM-CRF与Multi-CRF模型的对比,可以看出嵌套命名实体的识别对于实体识别有着很大的影响,需要重视。
2)本文的Anchor-Region Networks 可以有效地识别嵌套命名实体,在ACE2005、GENIA、ARNS数据集上达到了最好的效果。
3)本文的head-driven phrase structure of entity减少了计算复杂度。
Error Analysis
从上表可以看出,anchor dector的F1比完整的模型ARNs的F1高8%左右,错误主要是由于region dector的错误导致的,错误举例如下:
可以看出错误是由于前缀和后缀引起的,可以考虑在模型中加入句法、语法知识来解决这个问题。
Conclusion
本文提出ARNs模型在一定程度上解决了嵌套命名实体识别的问题,但还存在问题,还可以继续优化;本文的head-driven structures可以尝试在别的NLP任务上使用,如,事件抽取。